Aspects of the present invention relate generally to the installation and upgrade of software distributed as virtual appliances, and more particularly, to the automatic activation of virtual disks containing virtual appliances.
The utilization of a virtual appliance represents a new way of deploying software applications. Virtual appliances are virtual machine images comprising at least one software application and at least one virtual machine (VM). A virtual appliance can be directly installed on a virtual machine monitor operating on a physical machine.
From a software packaging and distribution point of view, software developers can create a single platform, reducing the cost and complexity of software development and management. Virtual appliances are provided to the user or customer as files, via either electronic downloads or physical distribution. By distributing virtual appliances, the software application manufacturers deliver a turnkey software service to the end user.
However, a single virtual machine is not sufficient to create a virtual appliance for distributing a multi-tier architecture application such as a client server application comprising as many tiers as separate processes. Rather, a virtual appliance of a multi-tier architecture includes at least as many virtual machines as the number of tiers. For instance, compared to current virtual appliances that contain a single virtual machine only, modern enterprise applications modeled as service oriented architectures (SOA) implement a multi-tier architecture where each tier contains one or more machines. Accordingly, a single virtual machine model is not sufficient to distribute a multi-tier service. Rather, the virtual appliance will be composed of multiple virtual machines. For a Web application that consists of three tiers, one tier implementing the presentation logic, an application server tier implementing the business logic and a back-end database tier, the virtual appliance will include three virtual machines, one for each tier.
Today the components of a virtual appliance can be separated into virtual disks. A virtual disk image is a file on a physical disk which has a format that can be interpreted by a virtual machine monitor as a hard disk. In most cases it is possible to separate the base operating system of the virtual machine from the other software applications and other components creating multiple virtual disks forming the virtual appliance. Almost all the applications distributed for UNIX comprise a binary section containing all the binaries to run the application that do not depend on the specific system where they are installed. A configuration/data section is also provided, which contains configuration and data files specific to the current installation. The two sections can be installed on two different file system paths potentially pointing to two different virtual disks.
There are many interests in delivering a virtual appliance on multiple disks. For instance, delivering a virtual appliance on multiple disks simplifies maintenance of the software application product binaries. As an example, the software application manufacturer can update the binaries and provide a new virtual disk with updated binaries to the customer. The customer can stop the virtual machine, replace the corresponding virtual disk image and restart the virtual machine. The customer can also modify the operating system virtual disk of the virtual appliance and replace the operating system with a different version.
In order to support different virtual environments such as VMware (VMware is a registered trademark of VMware, Inc.) or Xen (Xen is a trademark of Citrix Systems, Inc.) the application software manufacturer converts, for instance, the VMware formatted virtual disk for the product application binaries (product disk) into a Xen formatted virtual disk. However, the virtual disk containing the operating system has no need to be converted. The product disk can be used to support different virtual machines. By using the Xen “img” virtual disk format, the user can mount a virtual disk containing the product application binaries in a Linux system (Linux is a registered trademark of Linus Torvalds) into the appropriate mount point and configure the virtual disk using software application activation scripts. This is equivalent to installing the product in a Linux Server. In this context, the same product disk can be installed on the same operating system family. For each version of the same operating system, the scripts can be different. Consequently, all the scripts provided with the product disk apply to the same operating system family. Moreover, the product itself can be divided into multiple disks for separating the product binaries from the configuration/data. In this case, it will be possible to update the binaries without losing any configuration and/or data.
However installing or replacing the virtual disk containing the application binaries distributed on virtual disks requires execution of manual operations. For instance, the user has to manually run configuration/installation scripts to install the virtual disk in order to create and/or update system files under the virtual machine system directories.